GEMS Telemetry

Get and parse data sent to GEMS website. Data from 2025-06-23 to present.

Get Data

Get data from website.

Use start_date parameter to limit download.

Add row, type, send and line number

Separate data into post times, met, status, and adv data

Warning: Expected 9 pieces. Missing pieces filled with `NA` in 2 rows [1, 2].

reshape rga data

Filter bad data before timestamping adv data

Calculate per-send means

Warning: There were 4262 warnings in `summarise()`.
The first warning was:
ℹ In argument: `across(...)`.
ℹ In group 1: `send = 1`.
Caused by warning in `mean.default()`:
! argument is not numeric or logical: returning NA
ℹ Run `dplyr::last_dplyr_warnings()` to see the 4261 remaining warnings.
Warning: There were 4010 warnings in `summarise()`.
The first warning was:
ℹ In argument: `across(...)`.
ℹ In group 1: `send = 96`.
Caused by warning in `mean.default()`:
! argument is not numeric or logical: returning NA
ℹ Run `dplyr::last_dplyr_warnings()` to see the 4009 remaining warnings.

Status

Last post was 2025-07-07 20:10:24

How many status lines are in the wrong year?

Joining with `by = join_by(send)`

Teensy Temp

Junction temp of Surface teensy. Runs at 50C at room temp. >95C kills teensies.

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 949 rows containing missing values or values outside the scale range
(`geom_segment()`).

Battery

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).

Turbo

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Failed to fit group -1.
Caused by error in `gam.reparam()`:
! NA/NaN/Inf in foreign function call (arg 3)
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_segment()`).

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

RGA

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 1 row containing non-finite outside the scale range
(`stat_smooth()`).
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 1 row containing non-finite outside the scale range
(`stat_smooth()`).
Warning: Removed 1 row containing missing values or values outside the scale range
(`geom_point()`).

Oxygen

Carbon dioxide

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

Methane

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 580 rows containing non-finite outside the scale range
(`stat_smooth()`).

Hydrogen sulphide

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Removed 322 rows containing non-finite outside the scale range
(`stat_smooth()`).

ADV

Pressure/Depth

ADV Correlation

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

ADV Amplitude

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

ADV Vertical Velocity

Warning: Removed 72 rows containing missing values or values outside the scale range
(`geom_pointrange()`).
Warning: Removed 680 rows containing missing values or values outside the scale range
(`geom_segment()`).

ADV Alongshore Velocity

ADV set up with x axis parallel to shore. Positive is North.

Warning: Removed 27 rows containing missing values or values outside the scale range
(`geom_segment()`).

ADV Onshore velocity

Positive is offshore

Warning: Removed 30 rows containing missing values or values outside the scale range
(`geom_segment()`).

IMU data

`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
Warning: Failed to fit group -1.
Caused by error in `gam.reparam()`:
! NA/NaN/Inf in foreign function call (arg 3)
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'
`geom_smooth()` using method = 'gam' and formula = 'y ~ s(x, bs = "cs")'

Data issues

Bad Packets

Garbled status or data packets. These need to be filtered out before timestamping. These should be caught on the lander by adding a checksum. Also need to check whether data is corrupted from ADV-lander, lander-surface, or surface-web.

Out of order packets

Not sure what causes this. Happening on the server side. Maybe parallel processing of POST requests? Handled by sorting each send by packet number.

Missing data

Missing data includes bad packets. Need to separate out.

Joining with `by = join_by(send)`
`summarise()` has grouped output by 'send'. You can override using the
`.groups` argument.

Post times

timestamp send row_count
2025-07-07 17:00:25 2117 18
2025-07-07 17:10:25 2118 18
2025-07-07 17:20:25 2119 18
2025-07-07 17:30:25 2120 18
2025-07-07 17:40:24 2121 18
2025-07-07 17:50:25 2122 18
2025-07-07 18:00:25 2123 18
2025-07-07 18:10:25 2124 18
2025-07-07 18:20:25 2125 18
2025-07-07 18:30:24 2126 18
2025-07-07 18:40:25 2127 18
2025-07-07 18:50:25 2128 18
2025-07-07 19:00:25 2129 18
2025-07-07 19:10:00 2130 18
2025-07-07 19:20:24 2131 17
2025-07-07 19:30:25 2132 19
2025-07-07 19:40:24 2133 18
2025-07-07 19:50:25 2134 18
2025-07-07 20:00:25 2135 18
2025-07-07 20:10:24 2136 18

Lines per post

Warning: Removed 3 rows containing missing values or values outside the scale range
(`geom_point()`).